import {BASE_URL} from '@/utils/env.js' //引入接口共用地址


// 接口请求
export const request = (options) => {
  return new Promise((resolve, reject) => {
    // 获取用户令牌
    let token = uni.getStorageSync('token')
	let location = uni.getStorageSync('location') ? JSON.parse(uni.getStorageSync('location')) : {}

    // 设置请求头
    const header = {
      'Content-Type': 'application/json',
	  token:token,
      ...options.header, // 可以传入额外的请求头参数
	  ...location
    }
	
    // ⭐在发送请求之前执行拦截操作
    uni.request({
      url: BASE_URL + options.url, //接收请求的API
      method: options.method || 'GET', //接收请求的方式,如果不传默认为GET
      data: options.data || {}, //接收请求的data,不传默认为空
      header: header, //接收请求的header
      success(res) {
        // ⭐在这里处理接收到响应后处理响应数据
        if (res.data.code != 1) {
          // 提示重新登录
          uni.showToast({
          	title:res.data.msg,
			icon:"none"
          })
		  if(res.data.code==401||res.data.msg=='请登录后操作'){
			  setTimeout(() => {
				uni.redirectTo({
				  url: '/pages/login/login'
				})
				uni.removeStorageSync('token')
			  }, 1000)
		  }
          
        }
        resolve(res.data) // 使用resolve将数据传递出去
      },
      fail: (err) => {
		  uni.hideLoading()
        reject(err)
      }
    })
  })
}

// 图片上传
export const uploadRequest = (options) => {
  return new Promise((resolve, reject) => {
    // 获取用户令牌
    let token = uni.getStorageSync('token')
    // 设置请求头
    const header = {
      // Authorization: `Bearer ${token}`,
	  token:token,
      ...options.header // 可以传入额外的请求头参数
    }
    // ⭐在发送请求之前执行拦截操作
    uni.uploadFile({
      url: BASE_URL + options.url, //接收请求的API
	  files:options.data.files,
      filePath: options.data.file || '', //接收请求的data,不传默认为空
      header: header, //接收请求的header
	  name:'file',
      success(res) {
		  let uploadRes = JSON.parse(res.data)
        // ⭐在这里处理接收到响应后处理响应数据
        if (uploadRes.code != 1) {
          // 提示重新登录
          uni.showToast({
          	title:res.data.msg,
			icon:"none"
          })
		  if(res.data.code==401||res.data.msg=='请登录后操作'){
			  setTimeout(() => {
				uni.redirectTo({
				  url: '/pages/login/index'
				})
				uni.removeStorageSync('token')
			  }, 1000)
		  }
        }
        resolve(uploadRes) // 使用resolve将数据传递出去
      },
      fail: (err) => {
        reject(err)
      }
    })
  })
}